| 
                
               | 
              
                
               | 
              
                @@ -275,21 +275,26 @@ def is_maintenance_tracking_signed(tracking_info): 
               | 
            
            
            
              | 
                275
               | 
              
                275
               | 
              
                 def maintenance_tracking_info_update(maintenance, type_, tracking_info): 
               | 
            
            
            
              | 
                276
               | 
              
                276
               | 
              
                     old_maintenance_status = maintenance.maintenance_status 
               | 
            
            
            
              | 
                277
               | 
              
                277
               | 
              
                     is_tracking_signed = is_maintenance_tracking_signed(tracking_info) 
               | 
            
            
            
              | 
                
               | 
              
                278
               | 
              
                + 
               | 
            
            
            
              | 
                
               | 
              
                279
               | 
              
                +    # 状态流转,TRACKING_TO_DESPATCH -> TRACKING_SIGNED_FIXING -> TRACKING_FIXED_BACK -> TRACKING_BACK_SIGNED 
               | 
            
            
            
              | 
                
               | 
              
                280
               | 
              
                +    # 需判断快递签收再更新维修状态 
               | 
            
            
            
              | 
                278
               | 
              
                281
               | 
              
                     if type_ == 'tracking': 
               | 
            
            
            
              | 
                279
               | 
              
                282
               | 
              
                         maintenance.tracking_info = tracking_info 
               | 
            
            
            
              | 
                280
               | 
              
                283
               | 
              
                         maintenance.tracking_signed = is_tracking_signed 
               | 
            
            
            
              | 
                281
               | 
              
                
               | 
              
                -        if is_tracking_signed: 
               | 
            
            
            
              | 
                
               | 
              
                284
               | 
              
                +        if is_tracking_signed and old_maintenance_status == MaintenaceInfo.TRACKING_TO_DESPATCH: 
               | 
            
            
            
              | 
                282
               | 
              
                285
               | 
              
                             maintenance_status = MaintenaceInfo.TRACKING_SIGNED_FIXING 
               | 
            
            
            
              | 
                283
               | 
              
                286
               | 
              
                     else: 
               | 
            
            
            
              | 
                284
               | 
              
                287
               | 
              
                         maintenance.back_tracking_info = tracking_info 
               | 
            
            
            
              | 
                285
               | 
              
                288
               | 
              
                         maintenance.back_tracking_signed = is_tracking_signed 
               | 
            
            
            
              | 
                286
               | 
              
                
               | 
              
                -        if is_tracking_signed: 
               | 
            
            
            
              | 
                
               | 
              
                289
               | 
              
                +        if is_tracking_signed and old_maintenance_status == MaintenaceInfo.TRACKING_FIXED_BACK: 
               | 
            
            
            
              | 
                287
               | 
              
                290
               | 
              
                             maintenance_status = MaintenaceInfo.TRACKING_BACK_SIGNED 
               | 
            
            
            
              | 
                288
               | 
              
                
               | 
              
                -    maintenance.maintenance_status = maintenance_status 
               | 
            
            
            
              | 
                289
               | 
              
                
               | 
              
                -    maintenance_status_at = maintenance.maintenance_status_at 
               | 
            
            
            
              | 
                290
               | 
              
                
               | 
              
                -    if maintenance_status not in maintenance_status_at: 
               | 
            
            
            
              | 
                291
               | 
              
                
               | 
              
                -        maintenance_status_at[maintenance_status] = tc.utc_datetime() 
               | 
            
            
            
              | 
                292
               | 
              
                
               | 
              
                -    maintenance.maintenance_status_at = maintenance_status_at 
               | 
            
            
            
              | 
                
               | 
              
                291
               | 
              
                +     
               | 
            
            
            
              | 
                
               | 
              
                292
               | 
              
                +    if maintenance_status: 
               | 
            
            
            
              | 
                
               | 
              
                293
               | 
              
                +        maintenance.maintenance_status = maintenance_status 
               | 
            
            
            
              | 
                
               | 
              
                294
               | 
              
                +        maintenance_status_at = maintenance.maintenance_status_at 
               | 
            
            
            
              | 
                
               | 
              
                295
               | 
              
                +        if maintenance_status not in maintenance_status_at: 
               | 
            
            
            
              | 
                
               | 
              
                296
               | 
              
                +            maintenance_status_at[maintenance_status] = tc.utc_datetime() 
               | 
            
            
            
              | 
                
               | 
              
                297
               | 
              
                +        maintenance.maintenance_status_at = maintenance_status_at 
               | 
            
            
            
              | 
                293
               | 
              
                298
               | 
              
                     maintenance.save() 
               | 
            
            
            
              | 
                294
               | 
              
                299
               | 
              
                  
               | 
            
            
            
              | 
                295
               | 
              
                300
               | 
              
                     if maintenance_status != old_maintenance_status: 
               |